package net.imagine.backend.mockrmi;

/**
 * 服务组件查询器
 * 
 * @author wuqh
 */
public interface ProxyLookuper {
	/**
	 * 通过uri查找绑定的组件
	 * 
	 * @param uri
	 *            组件路径 ，uri格式：[protocol://]domain[:port]/id
	 */
	public Object lookup(String uri);

	/**
	 * 通过uri查找绑定的组件
	 * 
	 * @param uri
	 *            组件路径 ，uri格式：[protocol://]domain[:port]/id
	 * @param clazz
	 *            组件类型
	 */
	public <T> T lookup(String uri, Class<T> clazz);

	/**
	 * 通过ip+端口号查找绑定的组件
	 * 
	 * @param domain
	 *            域名
	 * @param port
	 * @param id
	 */
	public Object lookup(String domain, int port, String id);

	/**
	 * 通过ip+端口号查找绑定的组件
	 * 
	 * @param domain
	 *            域名
	 * @param port
	 * @param id
	 * @param clazz
	 *            组件类型
	 */
	public <T> T lookup(String domain, int port, String id, Class<T> clazz);

}
